Menu Price file Import
Introduction
This will import menu price file to Cloud SQL for PostgreSQL
Fields
| Column Position | Description | Datatype | Validation | Max length | Mandatory | Example | 
| A | IGNORE | |||||
| B | IGNORE | |||||
| C | Vehicle Id | Number | Numbers (0-9) | 5 | Y | 1 | 
| D | Repair short desc | String | A-Z characters | 20 | Y | Brakes | 
| E | Repair desc 1 | String | A-Z and 0-9 & All Special Characters | 100 | Y | Renew Front Brake Pads | 
| F | Repair desc 2 | String | A-Z and 0-9 & All Special Characters | 100 | Y | Standard | 
| G | Labour Time | Number | upto 2 decimals | 4 | Y | 0.8 | 
| H | Part number | String | A-Z and 0-9 & All Special Characters | 50 | Y | 1678168380 | 
| I | Part Name | String | A-Z and 0-9 & All Special Characters | 100 | Y | Brake Pads | 
| J | Part price | Number | upto 2 decimals | 7 | Y | 78.3 | 
| K | Part/fluid qty | Number | upto 2 decimals | 5 | Y | 1 | 
| L | IGNORE | |||||
| M | Additional notes for parts | String | A-Z and 0-9 & All Special Characters | 300 | N | Some notes | 
Importing Menu Price Files
This process imports menu price files from Modulus into the database. Modulus provides separate menu price files for Peugeot and Citroen brands.
Step 1: Preparation
Before importing new menu price data, you need to clear existing data and prepare the files:
1.1 Clear Existing Data
- Truncate the existing data in the 
modulus_menu_pricetable 
1.2 Prepare Import Files
- You will receive two separate files from Modulus:
- One for Peugeot menu prices
 - One for Citroen menu prices
 
 - Important: Import both files one after the other (not simultaneously)
 
1.3 Upload Files to Storage
- Upload each file to the Google Cloud Storage bucket: 
fnp-imports/modulus - Required filename: 
menu_price.csv(rename each file to this exact name before uploading) - Process one brand at a time
 
Step 2: File Validation (Optional)
- Navigate to Cloud Scheduler
 - Locate and run the Modulus_menu_price_validation job
- Note: Job name may vary slightly in different environments
 
 
Step 3: Import Process
- In the same Cloud Scheduler console
 - Locate and run the Modulus_menu_price_import job
- Note: Job name may vary slightly in different environments
 
 - Monitor the import job for completion
 
Step 4: Repeat for Second Brand
After successfully importing the first brand's file:
- Upload the second brand's file (rename to 
menu_price.csv) - Repeat Step 3 for the second file
 - Ensure both Peugeot and Citroen menu price data are imported
 
Troubleshooting Memory Issues
⚠️ Memory Error Handling:
If you encounter a memory error like
Memory limit of 512 MiB exceeded with 515 MiB used, follow these steps:
- Increase the memory allocation for the import service (above 512MB)
 - Re-run the import job
 - Revert the memory back to default (512MB) after successful import
 
Testing
- Data will be inserted to Cloud SQL for PostgreSQL under 
fpndatabase in tablemodulus_menu_price. 
Status: Accepted
Category: Protected
Authored By: Gladson on Jan 5, 2024
Revisions